<?php 
/**
 * 分类管理控制器
 */
class CategoryController extends CommonController{
	//定义模型
	private $_model;
	//构造模型
	public function __init(){
		//通关过K引用模型控制器里的Category方法。
		$this->_model = k('Category');
	}
	
/**
* 显示分类页
*/
	public function index(){
		//获得所有分类数据；分配变量
		$this->assign('data',$this->_model->get_all_data());
		//载入分类页
		$this->display();
		
	}
	
/**
* 添加顶级分类
*/
	public function add(){
		//获得POST提交数据；
		if(IS_POST){
			//执行模型控制器里的添加添加方法，在添加的动作之前，数据已经调用自动验证方法；
			//如果提交数据数据位空（验证不通过）；
			if(!$this->_model->add_data()){
				//输出错误：调用模型类里的添加方法的错误说明；
				$this->error($this->_model->error);
			}
			//如果提交数据成功，提示添加成功；
			$this->success('添加成功');
		}
		//载入添加分类页面；
		$this->display();
	}
	
/**
* 添加子级分类
*/
	public function add_son(){
		//获得POST提交数据；
		if(IS_POST){
			//执行模型控制器里的添加添加方法，在添加的动作之前，数据已经调用自动验证方法；
			//如果提交数据数据位空（验证不通过）；
			if(!$this->_model->add_data())
				//输出错误：调用模型类里的添加方法的错误说明；
				$this->error($this->_model->error);
			//如果提交数据成功，提示添加成功；
			$this->success('添加成功',U('index'));
		}
		//传递参数给模型类里get_one_data方法，获得当前添加类的属性名称
		$data = $this->_model->get_one_data(array('cid'=>Q('get.cid', 0, 'intval')),'cname');
		//分配变量给HTML用
		$this->assign('cname',$data['cname']);
		//载入添加子类页面；
		$this->display();
	}
	
/**
* ajax获得子集分类id
*/
	public function ajax_get_son(){
		//获得AJAX传过来的参数，不是AJAS传递为非法请求
		if(!IS_AJAX) $this->error('非法请求');
		//处理执行结果，传递给JS判断
		$sonId = $this->_model->get_son_data(Q('post.cid',0,'intval'));
		//给js返回json数据
		$this->ajax($sonId);
	}
	
	
/**
* 修改分类名
*/
public function edit(){
		//获得提交数据；
		if(IS_POST){
			//获得GET传递的参数，交给模型类里的修改方法，执行自动验证
			if($this->_model->update_data(array('cid'=>Q('post.cid',0,'intval')))){
				//提示修改成功
				$this->success('修改成功');
			};
			//提示修改错误（可能验证错误）；
			$this->error($this->_model->error);
		}

		$cid = Q('get.cid',0,'intval');
		//获得旧数据
		$oldData = $this->_model->get_one_data(array('cid'=>$cid));
		//分配常量，给HTML调用数据
		$this->assign('oldData',$oldData);
		
		//获得可以更换选择的父级分类(排除自己和自己子集)
		$cateData = $this->_model->get_change_cate($cid);
		//分配常量，给HTML调用数据
		$this->assign('cateData',$cateData);
		//载入修改分类页面；
		$this->display();
	}
	 
/**
* 删除分类
*/
public function del_data(){
	//传递参数交给模型控制器里的删除功能
		if($this->_model->del_data(Q('get.cid',0,'intval'))){
			//删除成功
			$this->success('删除成功');
		}
		//删除失败，调用模型里的删除错误；
		$this->error($this->_model->error);
	}

}


 
 









